www.gusucode.com > VC++ 通达信系统设置V3.0-源码程序 > VC++ 通达信系统设置V3.0-源码程序/code/EditXXMDlg.cpp
// EditXXMDlg.cpp : implementation file // Download by http://www.NewXing.com #include "stdafx.h" #include "tdxwcfg.h" #include "EditXXMDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern int GetComboPos(int TypeInt); ///////////////////////////////////////////////////////////////////////////// CEditXXMDlg::CEditXXMDlg(CWnd* pParent /*=NULL*/) : CDialog(CEditXXMDlg::IDD, pParent) { //{{AFX_DATA_INIT(CEditXXMDlg) m_XXMPath = _T(""); m_XXMTopic = _T(""); m_TPF = _T(""); m_nTitleRow = 0; //}}AFX_DATA_INIT m_bAdd = FALSE; } void CEditXXMDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CEditXXMDlg) DDX_Control(pDX, IDC_XXMTYPE_COMBO, m_ctrlXXMType); DDX_Text(pDX, IDC_XXMPATH_EDIT, m_XXMPath); DDX_Text(pDX, IDC_XXMTOPIC_EDIT, m_XXMTopic); DDX_Text(pDX, IDC_TPF_EDIT, m_TPF); DDX_Text(pDX, IDC_TITLEROW, m_nTitleRow); DDV_MinMaxInt(pDX, m_nTitleRow, 0, 100); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CEditXXMDlg, CDialog) //{{AFX_MSG_MAP(CEditXXMDlg) ON_BN_CLICKED(IDC_BROW, OnBrow) ON_CBN_SELCHANGE(IDC_XXMTYPE_COMBO, OnSelchangeXxmtypeCombo) ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN1, OnDeltaposSpin1) ON_EN_KILLFOCUS(IDC_TITLEROW, OnKillfocusTitlerow) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// //将tempStr拆成两半 CString CEditXXMDlg::GetTPF(CString& tempStr) { CString ResultStr; int pos = tempStr.ReverseFind('\\'); if(pos == -1) ResultStr = "*.*"; else ResultStr = tempStr.Mid(pos+1); tempStr = tempStr.Mid(0,pos+1); return ResultStr; } BOOL CEditXXMDlg::OnInitDialog() { CDialog::OnInitDialog(); if(!m_bAdd) SetWindowText("修改消息面"); else SetWindowText("增加消息面"); for(int i = 0;i < 6;i++) m_ctrlXXMType.AddString(XXMTypeStr[i]); if(!m_bAdd) { m_CurSelType = GetComboPos(m_XXMType); if(m_CurSelType != -1) m_ctrlXXMType.SetCurSel(m_CurSelType); //如果是通用消息,则应指定通配符 if(m_CurSelType == 1 || m_CurSelType == 2) m_TPF = GetTPF(m_XXMPath); } else //如果是添加状态 { m_ctrlXXMType.SetCurSel(0); m_CurSelType = 0; } ShowOrHideSome(m_CurSelType); UpdateData(FALSE); return TRUE; } #include "FolderDialog.h" void CEditXXMDlg::OnBrow() { UpdateData(TRUE); if(m_CurSelType == CB_ERR) return; if(m_CurSelType == 0) //如果是文本文件 { CFileDialog FileDialog(TRUE,NULL,NULL, OFN_NOCHANGEDIR, "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"); if (FileDialog.DoModal() == IDOK) { m_strFilePath = FileDialog.GetPathName(); GetDlgItem(IDC_XXMPATH_EDIT)->SetWindowText(m_strFilePath); } return; } //如果是其它消息类型 CFolderDialog FolderDlg(NULL,NULL,this); if( FolderDlg.DoModal() == IDOK ) { m_strFilePath = FolderDlg.GetPathName(); m_strFilePath+= "\\"; SetDlgItemText(IDC_XXMPATH_EDIT,m_strFilePath); } } void CEditXXMDlg::OnSelchangeXxmtypeCombo() { UpdateData(TRUE); m_CurSelType = m_ctrlXXMType.GetCurSel(); ShowOrHideSome(m_CurSelType); if(m_CurSelType == 1 || m_CurSelType == 2) { m_nTitleRow = 0; m_TPF = "*.*"; UpdateData(FALSE); } } void CEditXXMDlg::OnOK() { CDialog::OnOK(); //注意,先OK UpdateData(TRUE); if(m_CurSelType == CB_ERR) return; if(m_XXMTopic.GetLength() > 20) m_XXMTopic = m_XXMTopic.Left(20); m_XXMType = XXMTypeInt[m_CurSelType]; //如果是通用消息类型,则应有通配符 if(m_CurSelType == 1 || m_CurSelType == 2) { m_TPF.TrimLeft(); m_TPF.TrimRight(); if(m_TPF.IsEmpty()) m_TPF = "*.*"; m_XXMPath += m_TPF;//如果不先OK,则m_XXMPath会重新复原 } } //which为0,表示一般情况;为1表示通用信息,为2表示申银信息 void CEditXXMDlg::ShowOrHideSome(int which) { if(which == 1) { GetDlgItem(IDC_TPF_EDIT)->ShowWindow(SW_SHOW); GetDlgItem(IDC_TPF_STATIC)->ShowWindow(SW_SHOW); GetDlgItem(IDC_STATIC1)->ShowWindow(SW_SHOW); GetDlgItem(IDC_STATIC2)->ShowWindow(SW_SHOW); GetDlgItem(IDC_TITLEROW)->ShowWindow(SW_SHOW); GetDlgItem(IDC_SPIN1)->ShowWindow(SW_SHOW); } else if(which == 2) { GetDlgItem(IDC_TPF_EDIT)->ShowWindow(SW_SHOW); GetDlgItem(IDC_TPF_STATIC)->ShowWindow(SW_SHOW); GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE); GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE); GetDlgItem(IDC_TITLEROW)->ShowWindow(SW_HIDE); GetDlgItem(IDC_SPIN1)->ShowWindow(SW_HIDE); } else { GetDlgItem(IDC_TPF_EDIT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_TPF_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE); GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE); GetDlgItem(IDC_TITLEROW)->ShowWindow(SW_HIDE); GetDlgItem(IDC_SPIN1)->ShowWindow(SW_HIDE); } } void CEditXXMDlg::OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) { NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR; UpdateData(TRUE); m_nTitleRow -= pNMUpDown->iDelta; if(m_nTitleRow < 0) m_nTitleRow = 0; if(m_nTitleRow > 10) m_nTitleRow = 10; UpdateData(FALSE); *pResult = 0; } void CEditXXMDlg::OnKillfocusTitlerow() { UpdateData(TRUE); if(m_nTitleRow < 0) m_nTitleRow = 0; if(m_nTitleRow > 10) m_nTitleRow = 10; UpdateData(FALSE); }